package com.fufu.rpc.transport;

import com.fufu.rpc.Peer;

import java.io.InputStream;

/**
 * rpc通信客户端
 *
 * @author 咕咚潜入夜
 */
public interface TransportClient {

    /**
     * 根据端点对象创建连接
     *
     * @param peer 端点对象
     */
    void connect(Peer peer);

    /**
     * 根据主机和端口创建连接
     *
     * @param host 主机
     * @param port 端口
     */
    void connect(String host, int port);

    /**
     * 发送流数据
     *
     * @param data 输入流数据
     * @return
     */
    InputStream write(InputStream data);

    /**
     * 关闭连接
     *
     */
    void disconnect();
}
